| species | pft_numb | min_size | max_size | temp_opt | control |
|---|---|---|---|---|---|
| protist | 1 | 1.00e-07 | 3.00e-07 | 0 | 1 |
| protist | 1 | 3.00e-07 | 7.00e-07 | 0 | 2 |
| protist | 1 | 7.00e-07 | 1.90e-06 | 0 | 3 |
| protist | 1 | 1.90e-06 | 5.20e-06 | 0 | 4 |
| protist | 1 | 5.20e-06 | 1.39e-05 | 0 | 5 |
| protist | 1 | 1.39e-05 | 3.73e-05 | 0 | 6 |
Zooplankton Simulation Figure Testing
Results from Marine Heatwave Simulations 2023
Notes 7/13/2023
Fig 2: Make the control cycles match the design of Marias python figures X axis: time (daily for a, seasonal for b and c). Y axis: absolute biomass. In subplots (a): dashed line shows the end of each season. In subplots (c): Bars: temperature optima. Stacked bars: absolute biomass concentrations of the different size groups (color bar for the size range of groups from small to big. You can use another colorbar 😊).
Subtitle for each season on x axis Top to bottom: active, passive, protists
Fig
About
This markdown will step through the different results from Maria’s work on heatwaves on plankton communities. Each result section will have its own header and options:
Loading the Data
Species Key Table
species : type of groups (protists, active copepod, passive copepod)
pft_numb : functional group number 1: protist, 2: active copepod, 3: passive copepod
min_size : minimum cell/body size (um)
max_size : maximum cell/body size (um)
temp_opt : temperature norm optima (Celcius)
control : control number for each group (1-112: protist, 1-64: active copepod, 1-24: passive copepod).
The control number is being used for the dominant groups plots (in the “ind_bio_X_XXXX”.csv more details in the dominant_species_FOLDER)
Dominant Species
The folder includes the absolute, relative biomass and control number of plankton functional groups for different heatwave scenarios. The second row is the heatwave seasonal value. From row 3 and afterwards we have the seasonal values after the heatwave.
*For copepods: ONLY THE ADULT STAGE
This folder contains sets of matrices that come in threes:
Reshaping:
Ind_bio = This matrix details which taxa correspond to the absolute/relative biomass in the other matrices. This is the identification key used to match to species dataframe.
abs_bio = the absolute biomass
rel_bio = relative biomass
| trial | species | matrix_row | matrix_col | control | relative_bio | absolute_bio | seasons | pft_numb | min_size | max_size | temp_opt |
|---|---|---|---|---|---|---|---|---|---|---|---|
| bio_CaA_autumn | act_cop | 1 | col_1 | 46 | 23.727548 | 4.155886 | Au_control | 2 | 0.8773067 | 87.73067 | 20 |
| bio_CaA_autumn | act_cop | 1 | col_2 | 54 | 22.017397 | 3.856352 | Au_control | 2 | 0.8773067 | 87.73067 | 24 |
| bio_CaA_autumn | act_cop | 1 | col_3 | 47 | 19.600459 | 3.433025 | Au_control | 2 | 2.9619363 | 296.19363 | 20 |
| bio_CaA_autumn | act_cop | 1 | col_4 | 55 | 17.348404 | 3.038577 | Au_control | 2 | 2.9619363 | 296.19363 | 24 |
| bio_CaA_autumn | act_cop | 1 | col_5 | 45 | 9.645399 | 1.670431 | Au_control | 2 | 0.2598526 | 25.98526 | 20 |
| bio_CaA_autumn | act_cop | 2 | col_1 | 54 | 37.236535 | 6.489351 | A | 2 | 0.8773067 | 87.73067 | 24 |
Dominant Species - Data Wrangle:
Couple data wrangling steps here: - make row and column identifiers for what the season was, and what the year was that matches the heatwave trial - add one year of control as a lead-in for plots - join the control biomass as a column so we can caluclate difference and percent difference from what it would be without a heatwave disturbance - do some benchmarking against the taxa specific intra-annual fluctuation in biomass
Dominant Species - Seasonal Cycle Control
NOTES: Do a similar cleanup to the heatwave results, with some minor tweaks want all the columns to match so they can append. year = 0, hw_season is either none, or we can repeat it 4 times to filter with the data or we can just plop it on top whenever we want it later.
Control conditions precede the heatwave event. Need to assemble these into one consecutive year (year = 0), ordered by season, and then bind them ahead of the heatwave response data.
Dominant Species Figures
Objective:
We want to focus on the Autumn heatwaves to showcase them, the other seasons can go in the supplement. We want to follow how different body sizes respond, while acknowledging that the community is stable as a whole
Copepods have optima of 20 & 24, these are the main optima to focus on Protists have a wider range
Scatterplots can reflect the response differences better than stacked bars, but get complicated quickly with lots of species.
Dominant Species Data Wrangling:
1. Isolate the HW Season Responses:
# A tibble: 4 × 1
seasons
<fct>
1 Summer
2 Autumn
3 Winter
4 Spring
2. Lead with 1-Year of Control:
3. Calculate Difference from Control:
Status Pass: Dimensions for seasonal_response are Good Status: All four heatwave season exposures prepped in a list for plotting
This figure hits all the information I think Maria wants, but is washed out because the biomass differences are on different scales for each functional group.
Change in Absolute Biomass
The following figures display how far from the control cycle each of the dominant species sits
Percent Change in Biomass
The following figures display that same difference in biomass from the control state, but displayed as a percentage difference from that control cycle’s biomass
Autumn Heatwave - Independent Functional Groups
For main figure only put Autumn. Use multiple subplots for the functional groups and then within them the temperature optima. Size range and biomass changes need to re-scale between these different groups, so they will need to be plotted independently.
AHW - Logistic Color Scales
If we want to show biomass on the y, we can use a logistic color scale for the body size. This would likely need different figures for the different functional groups since they cover different ranges.
AHW Stacked Bars:
Stacked bars are probably the most obvious and least exciting plot form for this. They can show the contribution of various groups (temperature optima, functional group, body size) to the total aggregate or what fractions they are of the whole.
If we lead in with a year of the control state then its possible to try* and compare back and forth, but it is very hard to tell:
If we use fraction of the total community its a little easier to see where the relative biomass is, but again we need to pick either temperature or body size, can’t really do both, and we lose the comparison across functional groups.
AHW Change from Control Bars
These take the stacked bar idea, but subtract out the control state. Each taxa is done independently so we can see that theere are cases where similar taxa in temperature optima may do better/worse, and what that looks like accross the whole group:
This panel tracks each season longitudinally on its own, rather than as parts within a year.
Size Bin Figures
The folder includes the differences of seasonal biomass (absolute number) of the size bins for protists (6), active copepods (6) and passive copepods communities (4).
*for copepods: ALL LIFE STAGES (juvenile + adult)
First row : the seasonal biomass difference during the heatwave
Rows 2- 36 : the biomass difference after the heatwave for 9 years
-- column headers seasons X_hw : the season when the HW occurs. All files start with the HW A : autumn S : spring Su : summer W : winter
Notes:
For the size bins. We can drop sb1 for protists, sb1+2 for actives, & sb 1 for passives. Protists will need their own color scale here.
Size Bin Anomalies Following Heatwaves
- Don’t need to show the control conditions
- Start with heatwave directly
- Don’t need to change, just do refining
- Remove the smallest groups for protists and passive copepods (the first smallest group)
- Remove the two smallest groups in the active copepods (the first 2 smallest groups)
File endings: NA = heatwave on both - Used in paper _cop_only = copepods only impacted with heatwave - supplement _prot_only = protists only impacted - supplement
Data Wrangling
| file_id | row | heatwave_condition | seasons | P_control | Ca_control | CaA_control | Cp_control | CaP_control |
|---|---|---|---|---|---|---|---|---|
| seasonal_control | 1 | Heatwave Occurs | W | 2 | 1.0551861929333 | 0.884576612903226 | 1.3252688172043 | 1.2244623655914 |
| seasonal_control | 2 | Heatwave Recovery | S | 1 | 0.49609375 | 0.4375 | 0.660450268817204 | 0.625 |
| seasonal_control | 3 | Heatwave Recovery | Su | 1 | 0.488642153532609 | 0.437669836956522 | 0.664628623188406 | 0.625 |
| seasonal_control | 4 | Heatwave Recovery | A | 1 | 0.509057348901099 | 0.440418956043956 | 0.631524725274725 | 0.614468864468865 |
| file_id | row | heatwave_condition | size_bin_1 | size_bin_2 | size_bin_3 | size_bin_4 | size_bin_5 | size_bin_6 |
|---|---|---|---|---|---|---|---|---|
| cc_A_mean_autumn_cop_only | 1 | Heatwave Occurs | 6.72e-05 | 0.0000443 | -0.2071580 | -1.5628502 | -6.1784698 | -0.2726971 |
| cc_A_mean_autumn_cop_only | 2 | Heatwave Recovery | 5.40e-06 | 0.0006766 | -0.0855209 | -2.2300260 | -3.6343000 | -0.3065866 |
| cc_A_mean_autumn_cop_only | 3 | Heatwave Recovery | 3.40e-06 | -0.0000118 | -0.0196872 | -0.3950534 | -3.6141015 | -0.7991909 |
| cc_A_mean_autumn_cop_only | 4 | Heatwave Recovery | 2.40e-06 | -0.0000166 | -0.4370677 | -1.1901704 | -5.8301654 | -0.3024307 |
| cc_A_mean_autumn_cop_only | 5 | Heatwave Recovery | -1.05e-05 | 0.0005679 | -0.3994118 | -5.6818918 | -0.2378401 | 2.9368526 |
| cc_A_mean_autumn_cop_only | 6 | Heatwave Recovery | 4.60e-06 | 0.0035631 | 0.0200558 | -1.4053838 | -2.3759260 | -0.6176969 |
| file_id | row | heatwave_condition | size_bin_1 | size_bin_2 | size_bin_3 | size_bin_4 | size_bin_5 | size_bin_6 |
|---|---|---|---|---|---|---|---|---|
| seasonal_spring_HW_diff | 1 | Heatwave Occurs | S_hw | 0 | -8.58516483516203e-05 | -0.0042925824175824 | -0.0289606227106227 | -0.0306776556776557 |
| seasonal_spring_HW_diff | 2 | Heatwave Recovery | Su | 0 | 0.0170014779250955 | 0.0565455850191362 | 0.00397245762711873 | 0.025537634408602 |
| seasonal_spring_HW_diff | 3 | Heatwave Recovery | A | 0 | 0.0231854838709677 | 0.046875 | -0.00520833333333326 | 0 |
| seasonal_spring_HW_diff | 4 | Heatwave Recovery | W | 0 | 0.00895889945652173 | 0.0446671195652174 | 5.66123188405765e-05 | 0 |
| seasonal_spring_HW_diff | 5 | Heatwave Recovery | Sp | 0 | 0.00907881181318682 | 0.0255837912087912 | 0.00171703296703296 | 0.0105311355311355 |
| seasonal_spring_HW_diff | 6 | Heatwave Recovery | S | 0 | 0.00645737937397506 | 0.0337701612903226 | 0.001008064516129 | 0.00134408602150526 |
Taxa-Specific Body Size Bins
The different taxa have different body size ranges associated with each bin, these need to be matched up for labels:
Size-Bins Absolute Biomass
These all start with the season the heatwave hits, then the row number counts in integers for the seasons. Split the data by the heatwave season then based on that, proceed with the correct seasons that follow to construct labels.
Shannon Diversity Index Figures
The folder includes the shannon diversity indexes for protists, active copepods and passive copepods communities.
For copepods: ONLY THE ADULT STAGE
Each csv file has the shannon values for one specific season for 9 years. Year 0 : pre-heatwave year Year 1 : heatwave year Years 2-9 : years after the heatwave
NOTES:
For the diversity plots there needs to be a choice between displaying change as AWSpS or each season as y1 y2 y3 y4 …
| year | file_id | season_taxa | shannon_idx | hw_status | hw_season | season | taxa |
|---|---|---|---|---|---|---|---|
| 0 | autumn_Ca_all_seasons | autumn_Ca_spring | 3.280343 | Pre-Heatwave | Autumn HW | Spring | Active Copepods |
| 0 | autumn_Ca_all_seasons | autumn_Ca_summer | 4.136993 | Pre-Heatwave | Autumn HW | Summer | Active Copepods |
| 0 | autumn_Ca_all_seasons | autumn_Ca_autumn | 4.795545 | Pre-Heatwave | Autumn HW | Autumn | Active Copepods |
| 0 | autumn_Ca_all_seasons | autumn_Ca_winter | 4.229620 | Pre-Heatwave | Autumn HW | Winter | Active Copepods |
| 1 | autumn_Ca_all_seasons | autumn_Ca_spring | 4.128155 | Heatwave | Autumn HW | Spring | Active Copepods |
| 1 | autumn_Ca_all_seasons | autumn_Ca_summer | 4.234364 | Heatwave | Autumn HW | Summer | Active Copepods |
Richness Figures
Need two things: - Time - Shannon diversity (within a functional group)
The diversity index is on the annual scale, not the seasonal scale <-
Can start with the annual, and see what that looks like first
Annual Change within a Season
Intra-Annual Variations
Same data, but now the x axis flows Spring - > Summer -> Autumn -> Winter -> Spring… as it would throughout the years
Notes 7/13/2023
Fig 2:
Make the control cycles match the design of Marias python figures X axis: time (daily for a, seasonal for b and c). Y axis: absolute biomass. In subplots (a): dashed line shows the end of each season. In subplots (c): Bars: temperature optima. Stacked bars: absolute biomass concentrations of the different size groups (color bar for the size range of groups from small to big. You can use another colorbar 😊).
Subtitle for each season on x axis Top to bottom: active, passive, protists
Fig 3.
Absolute Biomass concentration anomalies (HW/afterHW – preHW) for the biomass size bins of (a) protists, (b) passive and (c) active copepod feeders for the winter, autumn, spring and summer HW scenarios.
Note for Adam: Here we will have a figure with the figures you have under the Size-Bins Absolute Biomass section for protists, passive and active copepods as subplots. Could you please add (a), (b), (c) for protists, passive and active copepod feeders respectively? For the protists use a biomass range anomaly of -20 to 20. For copepods from – 8 to 8. Can you make the vertical border every 4 seasons dark black to separate the years? You can keep the seasonal vertical borders light grey if you want- or remove them. Whatever you think looks better.
Passive Copepods Response
Fig 4.
Absolute seasonal biomass concentration anomalies of the dominant groups of (a) protists, (b) passive and (a) active copepod feeders for the autumn HW scenario during the heatwave and 9 years after the heatwave.
Note for Adam: Here we will have a figure with the figures you have under the Change in Absolute Biomass section for protists, passive and active copepods as subplots. Could you please add (a), (b), (c) for protists, passive and active copepod feeders respectively? For the protists can you please add the 16 oC temperature optima as well? I think the protists have a biomass anomaly 1 order higher than copepods. If yes, then use one biomass range for copepods (active, passive) and one for protists. Can you make the vertical border every 4 seasons dark black to separate the years? You can keep the seasonal vertical borders light grey.
Fig 5.
Annual Shannon Diversity Index for (a) protists, (b) passive and (c) active copepod feeders for the winter, spring, autumn and winter HW scenarios. y axis: years. Year 0: pre-heatwave, Year 1: heatwave (in red) Years 2-9: after-heatwave.
Note for Adam: Here we will have the figure you have under the Annual Change within a Season section. Same ranges for the Shannon index for all groups (2.4- 6.5). X axis: can you please change it to 0 1 2 3 4 5 6 7 8 9 than 0 2 4 6 8 years?
Fig 6.
Biomass anomalies (HW protists or copepods only - HW on both protists and copepods) for all seasons for the seasonal HWs and the 7 seasons afterwards. X axis: size bins, y axis: absolute biomass anomalies. The median value is presented with a square and the Standard deviation with the bar line.
Note for Adam: This is an example of what we want. It doesn’t have to be like that, the key elements we want to show is the noice in the anomalies (in this figure are the dots), the mean (square) and the standard deviation (line). The plot shows that, at least in our model, it is hard to distinguish the temperature vs the ecosystem driver. They seem to act synergistically. The model shows that at least for passive copepods the top-down control (blue) seems to be more important that the bottom up (yellow) highlighting the importance of resource competition on the copepod community structure. For active and protist copepods is more complicated. Thus, we argue that as we move from individuals to populations to ecosystem using temperature as the key driver might not be enough. A multidriver approach should be taken into consideration.